﻿
namespace VMWareLabWorkflowsDataContracts
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;

    [Serializable, TypeConverter(typeof(ExpandableObjectConverter))]
    public class VMWareLabEnvironmentDetails
    {
        public VMWareLabEnvironmentDetails()
        {
        }

        [Browsable(true)]
        public string ServerName { get; set; }

        [Browsable(true)]
        public ushort ServerPort { get; set; }

        [Browsable(true)]
        public string UserName { get; set; }

        [Browsable(true)]
        public string Password { get; set; }

        [Browsable(true)]
        public bool RevertToSnapshot { get; set; }

        [Browsable(true)]
        public string TestEnvironmentName { get; set; }
        
        [Browsable(true)]
        public List<EnvironmentParameter> EnvironmentParameters { get; set; }
    }

    [Serializable, TypeConverter(typeof(ExpandableObjectConverter))]
    public class EnvironmentParameter
    {
        /// <summary>
        /// Gets or sets the name of the virtual machine.
        /// </summary>
        /// <value>The name of the virtual machine.</value>
        public string VirtualMachineName { get; set; }

        /// <summary>
        /// Gets or sets the name of the snapshot.
        /// </summary>
        /// <value>The name of the snapshot.</value>
        public string SnapshotName { get; set; }
    }
}
